In industry there has long been a desire to use industrial robots for processes involving requirements for higher accuracy. Examples of such processes are: laser cutting, laser welding, plasma cutting and water cutting, etc.
However, an industrial robot has a large number of error sources, which in normal cases do not permit the requirements for accuracy, which are made by such processes, to be achieved. The error sources which may occur may be divided into static and dynamic error sources. The dynamic ones may, in turn, be divided into low-frequency error sources and error sources with a large bandwidth.
FIG. 1 shows an example of an industrial robot with three main axes (axis 1–axis 3) and three wrist axes (axis 4–axis 6). A stationary foot 1:1, usually referred to as the base of the robot, supports a stand 1:3 which, by means of a first drive device 1:2, is rotatable around a first axis. The stand supports a first arm 1:5 which, by means of a second drive device 1:4, is rotatable around a second axis. The first arm supports a second arm 1:7 which, by means of a third drive device 1:6, is rotatable around a third axis. The second arm supports a wrist which, by means of a fourth, a fifth and a sixth drive device, is rotatable around axes 4, 5 and 6. The wrist supports a tool 1:9, in which an operating point, called TCP (Tool Center Point), is defined. Each drive device comprises a motor and a gear and devices for controlling and measuring the movement.
FIG. 2 schematically shows how the control of an industrial robot is arranged. The movement of the operating point and the orientation of the tool are defined in a program 2:1, which is interpreted by an interpreter 2:2, which generates reference positions and reference orientations for a trajectory generator 2:3. With the aid of the reference positions and the reference orientations, the trajectory generator interpolates a trajectory comprising a plurality of trajectory parts such as: straight lines, segments of a circle and parabolic trajectory parts. Usually, these trajectory parts are determined in a Cartesian system of coordinates, in which it is desired to define the position of the operating point and the orientation of the tool. By means of an inverse-kinematic model 2:4, the angles that the robot axes should adopt in order to achieve the position and orientation values for the operating point and the tool, are calculated by the trajectory generator. These calculated robot-axis angles are then used as reference signals for the servo units 2:5 of the axes. Each axis has its own servo which controls the motor 2:6 of the axis with the associated gear 2:7. Each gear determines the angle of its axis, and by the mechanical interconnection of the axes according to FIG. 1, the output angular values of the six gears provide the orientation of the tool 2:9 and the positioning of the operating point (TCP) through the kinematics of the robot.
Based on FIGS. 1 and 2, the following error sources occur:    1. Kinematic errors, which are due to the fact that there is a difference between the kinematic model which is used in the inverse-kinematic calculations 2:4 and the real kinematics 2:8 of the robot. Examples of kinematic errors are obliquity of the axes, incorrect axis distances and incorrect axis offsets.    2. Transmission errors, which are due to the fact that the relation between motor angle and arm angle does not correspond. The error may be due to inaccuracy and play in gears, faults in the geometry of articulated rods, for example when using parallel links for transmission of torques to axis 3, etc.    3. Measuring system errors, which, for example, are due to the fact that the angle-reference value corresponding to the axis angle zero is incorrect or that the noise level of the sensor signal is too high.    4. Downward deflection errors, which are due to the fact that gears and arms are not fully rigid. This gives a downward deflection of the robot, which depends on the positions of the robot arms and the weight of the tool. The situation is aggravated by the fact that, for example, gears may have a torque-dependent stiffness value.    5. Calibration errors, which comprise the errors arising when the robot is being installed. Examples of calibration errors are the position errors and orientation errors which arise when the orientation and operating point of the tool are to be measured relative to the mounting plate of the robot wrist and when the position and orientation of the robot foot are to be measured relative to the surroundings of the robot.    6. Dynamic deflection errors, which arise when the servo controls the motor positions. Since measurement is performed only of the motor angle, it is difficult to control the motor such that the arm system moves in accordance with the reference signal to the servo. The situation is further aggravated by the dynamic connections which exist between the axes.    7. Friction errors, which are due to the friction which counteracts the rotation of the motor shaft and the shafts in the gearbox. When the servo controls a shaft and the shaft changes direction of movement, the sign reversal of the frictional torque thus arising adds a torque disturbance to the control. This disturbance causes a transient control action, which generates a path error. If the friction is known, the torque disturbance in the servo may be compensated for. Since the friction is temperature-dependent, depending on the direction of rotation, depending on the magnitude of the transverse forces on the axes and depending on wear, it is very difficult to predict the real value of the friction and how the torque disturbances, caused by the friction, influence the path.
A frequency division of the error sources reveals that the first five error sources in the above list are of a static nature, that error source 6 is a dynamic, low-frequency error source and that error source 7 is a dynamic, high-frequency error source. The technique which is currently used for compensating for the errors described is as follows:
For error sources 1–5, identification of the error parameters (25–100 parameters) of each individual robot is made by measuring the actual position of the operating point for a large number of robot configurations (50–200 configurations) by means of an accurate external measuring system. With the aid of these error parameters, better correspondence may then be obtained between the inverse-kinematic calculations 2:4 and the actual kinematics 2:8 of the robot. Typically, the sum of the static errors may be reduced from the level 7 mm to 1 mm. The fact that it is not possible to make a more accurate compensation of the errors is due to measurement errors in the external measuring system, gear play of the axes of the robot and non-modelled error sources. A considerable problem in this context is that many of the errors are temperature-dependent.
To reduce the effect of error source 6, a dynamic modelling of the robot is made for model-based servo control and axis control. However, it is not possible to obtain sufficient accuracy of the dynamic models, and also with this technique, dynamic path errors of 0.5–1.0 mm of the operating point may be obtained at relatively low speeds (0.1–0.2 m/s).
Finally, attempts are made to reduce the effect of the friction on the axis control (error source 7) by introducing a counteracting modelled friction signal as feedforward or feedback signal in the servo. The friction is then identified by running each axis in a slow movement forwards/backwards, whereby half the difference of the torque reference signals thus obtained is then used as a measure of the friction of the axis. Using this method, the path error due to friction may be reduced typically from the level 1 mm to the level 0.5 mm.